Micron Document
NexusPi Git Node

Node / mirrors / MeshChatX / files / meshchatx / src / frontend / js / MicronWasmRuntimeOverride.js

Displaying Raw • Download

meshchatx/src/frontend/js/MicronWasmRuntimeOverride.js 2230d76a6c2f8f4d9117534fe39068d0ae8a5e05 (2230d76a) Text, 4.76 KB

T8b949e/**
* Optional runtime override for micron-parser-go WASM (IndexedDB).
* Install via local .wasm upload only. Build ships bundled WASM under /vendor/.
*/

Tff7b72const Te6edf3DB_NAME Tff7b72= Ta5d6ff"meshchatx_micron_wasm_override"Tb4b4b4;
Tff7b72const Te6edf3DB_VERSION Tff7b72= T79c0ff1Tb4b4b4;
Tff7b72const Te6edf3STORE Tff7b72= Ta5d6ff"kv"Tb4b4b4;
Tff7b72const Te6edf3KEY Tff7b72= Ta5d6ff"runtime_override"Tb4b4b4;

T8b949e/** @typedef {{ source: "upload", releaseTag: string, wasmSri: string, wasmBytes: ArrayBuffer, expectedSha256Hex: string|null }} MicronWasmRuntimeOverrideRecord */

Tff7b72export Tff7b72const Te6edf3WASM_FILENAME Tff7b72= Ta5d6ff"micron-parser-go.wasm"Tb4b4b4;

Tff7b72export Tff7b72const Te6edf3MAX_WASM_OVERRIDE_BYTES Tff7b72= T79c0ff14 Tff7b72* T79c0ff1024 Tff7b72* T79c0ff1024Tb4b4b4;

Tff7b72function Te6edf3openDbTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72new Tffa657PromiseTb4b4b4(Tb4b4b4(Te6edf3resolveTb4b4b4, Te6edf3rejectTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3req Tff7b72= Te6edf3indexedDBTb4b4b4.Te6edf3openTb4b4b4(Te6edf3DB_NAMETb4b4b4, Te6edf3DB_VERSIONTb4b4b4)Tb4b4b4;
Te6edf3reqTb4b4b4.Te6edf3onerror Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3rejectTb4b4b4(Te6edf3reqTb4b4b4.Te6edf3error Tff7b72|| Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"IndexedDB open failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3reqTb4b4b4.Te6edf3onupgradeneeded Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3db Tff7b72= Te6edf3reqTb4b4b4.Te6edf3resultTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dbTb4b4b4.Te6edf3objectStoreNamesTb4b4b4.Te6edf3containsTb4b4b4(Te6edf3STORETb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3dbTb4b4b4.Te6edf3createObjectStoreTb4b4b4(Te6edf3STORETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4;
Te6edf3reqTb4b4b4.Te6edf3onsuccess Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3resolveTb4b4b4(Te6edf3reqTb4b4b4.Te6edf3resultTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e/** @param {ArrayBuffer} buf */
Tff7b72export Tff7b72async Tff7b72function Te6edf3sha256HexOfBufferTb4b4b4(Te6edf3bufTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3d Tff7b72= Tff7b72await Te6edf3cryptoTb4b4b4.Te6edf3subtleTb4b4b4.Te6edf3digestTb4b4b4(Ta5d6ff"SHA-256"Tb4b4b4, Te6edf3bufTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3bytes Tff7b72= Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3dTb4b4b4)Tb4b4b4;
Tff7b72let Te6edf3hex Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72let Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3bytesTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Te6edf3hex Tff7b72+= Te6edf3bytesTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4.Te6edf3toStringTb4b4b4(T79c0ff16Tb4b4b4)Tb4b4b4.Te6edf3padStartTb4b4b4(T79c0ff2Tb4b4b4, Ta5d6ff"0"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3hexTb4b4b4;
Tb4b4b4}

T8b949e/** @param {ArrayBuffer} buf */
Tff7b72export Tff7b72async Tff7b72function Te6edf3computeWasmSriSha384Tb4b4b4(Te6edf3bufTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3hash Tff7b72= Tff7b72await Te6edf3cryptoTb4b4b4.Te6edf3subtleTb4b4b4.Te6edf3digestTb4b4b4(Ta5d6ff"SHA-384"Tb4b4b4, Te6edf3bufTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3base64 Tff7b72= Te6edf3btoaTb4b4b4(Tffa657StringTb4b4b4.Te6edf3fromCharCodeTb4b4b4(Tb4b4b4...Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3hashTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Ta5d6ff`Ta5d6ffsha384-Tffd700${Te6edf3base64Tffd700}Ta5d6ff`Tb4b4b4;
Tb4b4b4}

Tff7b72function Te6edf3assertSriTb4b4b4(Te6edf3wasmSriTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3wasmSri Tff7b72!== Ta5d6ff"string" Tff7b72|| Tff7b72!Ta5d6ff/^sha384-[A-Za-z0-9+/=]+$/Tb4b4b4.Te6edf3testTb4b4b4(Te6edf3wasmSriTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Micron WASM update: invalid SRI format"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

T8b949e/**
* @param {MicronWasmRuntimeOverrideRecord} record
*/
Tff7b72export Tff7b72async Tff7b72function Te6edf3setMicronWasmRuntimeOverrideTb4b4b4(Te6edf3recordTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3record Tff7b72|| Tff7b72!Te6edf3recordTb4b4b4.Te6edf3wasmBytesTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Micron WASM update: missing WASM data"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3buf Tff7b72= Te6edf3recordTb4b4b4.Te6edf3wasmBytesTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tb4b4b4(Te6edf3buf Tff7b72instanceof Tffa657ArrayBufferTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Micron WASM update: wasmBytes must be an ArrayBuffer"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3bufTb4b4b4.Te6edf3byteLength Tff7b72> Te6edf3MAX_WASM_OVERRIDE_BYTESTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff`Ta5d6ffMicron WASM update: WASM exceeds maximum size (Tffd700${Te6edf3MAX_WASM_OVERRIDE_BYTESTffd700}Ta5d6ff bytes).Ta5d6ff`Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3assertSriTb4b4b4(Te6edf3recordTb4b4b4.Te6edf3wasmSriTb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3releaseTag Tff7b72= Tffa657StringTb4b4b4(Te6edf3recordTb4b4b4.Te6edf3releaseTag Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3trimTb4b4b4(Tb4b4b4) Tff7b72|| Ta5d6ff"upload"Tb4b4b4;
Tff7b72const Te6edf3expectedSha256Hex Tff7b72= Te6edf3recordTb4b4b4.Te6edf3expectedSha256Hex Tff7b72== Tff7b72null Tff7b72? Tff7b72null Tff7b72: Tffa657StringTb4b4b4(Te6edf3recordTb4b4b4.Te6edf3expectedSha256HexTb4b4b4)Tb4b4b4.Te6edf3toLowerCaseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3db Tff7b72= Tff7b72await Te6edf3openDbTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3tx Tff7b72= Te6edf3dbTb4b4b4.Te6edf3transactionTb4b4b4(Te6edf3STORETb4b4b4, Ta5d6ff"readwrite"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3st Tff7b72= Te6edf3txTb4b4b4.Te6edf3objectStoreTb4b4b4(Te6edf3STORETb4b4b4)Tb4b4b4;
Te6edf3stTb4b4b4.Te6edf3putTb4b4b4(
Tb4b4b4{
Te6edf3sourceTff7b72: Ta5d6ff"upload"Tb4b4b4,
Te6edf3releaseTagTb4b4b4,
Te6edf3wasmSriTff7b72: Te6edf3recordTb4b4b4.Te6edf3wasmSriTb4b4b4,
Te6edf3wasmBytesTff7b72: Te6edf3bufTb4b4b4,
Te6edf3expectedSha256HexTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3KEY
Tb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72new Tffa657PromiseTb4b4b4(Tb4b4b4(Te6edf3resolveTb4b4b4, Te6edf3rejectTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3txTb4b4b4.Te6edf3oncomplete Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3resolveTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3txTb4b4b4.Te6edf3onerror Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3rejectTb4b4b4(Te6edf3txTb4b4b4.Te6edf3error Tff7b72|| Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"IndexedDB write failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3txTb4b4b4.Te6edf3onabort Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3rejectTb4b4b4(Te6edf3txTb4b4b4.Te6edf3error Tff7b72|| Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"IndexedDB write aborted"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Te6edf3dbTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

T8b949e/** @returns {Promise<MicronWasmRuntimeOverrideRecord|null>} */
Tff7b72export Tff7b72async Tff7b72function Te6edf3getMicronWasmRuntimeOverrideTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3db Tff7b72= Tff7b72await Te6edf3openDbTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3tx Tff7b72= Te6edf3dbTb4b4b4.Te6edf3transactionTb4b4b4(Te6edf3STORETb4b4b4, Ta5d6ff"readonly"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3st Tff7b72= Te6edf3txTb4b4b4.Te6edf3objectStoreTb4b4b4(Te6edf3STORETb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3raw Tff7b72= Tff7b72await Tff7b72new Tffa657PromiseTb4b4b4(Tb4b4b4(Te6edf3resolveTb4b4b4, Te6edf3rejectTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72const Te6edf3r Tff7b72= Te6edf3stTb4b4b4.Te6edf3getTb4b4b4(Te6edf3KEYTb4b4b4)Tb4b4b4;
Te6edf3rTb4b4b4.Te6edf3onsuccess Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3resolveTb4b4b4(Te6edf3rTb4b4b4.Te6edf3result Tff7b72|| Tff7b72nullTb4b4b4)Tb4b4b4;
Te6edf3rTb4b4b4.Te6edf3onerror Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3rejectTb4b4b4(Te6edf3rTb4b4b4.Te6edf3error Tff7b72|| Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"IndexedDB read failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3raw Tff7b72|| Tff7b72!Te6edf3rawTb4b4b4.Te6edf3wasmBytes Tff7b72|| Tff7b72!Te6edf3rawTb4b4b4.Te6edf3wasmSriTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{
Te6edf3sourceTff7b72: Ta5d6ff"upload"Tb4b4b4,
Te6edf3releaseTagTff7b72: Tffa657StringTb4b4b4(Te6edf3rawTb4b4b4.Te6edf3releaseTag Tff7b72|| Ta5d6ff""Tb4b4b4)Tb4b4b4,
Te6edf3wasmSriTff7b72: Tffa657StringTb4b4b4(Te6edf3rawTb4b4b4.Te6edf3wasmSriTb4b4b4)Tb4b4b4,
Te6edf3wasmBytesTff7b72: Te6edf3rawTb4b4b4.Te6edf3wasmBytesTb4b4b4,
Te6edf3expectedSha256HexTff7b72: Te6edf3rawTb4b4b4.Te6edf3expectedSha256Hex Tff7b72== Tff7b72null Tff7b72? Tff7b72null Tff7b72: Tffa657StringTb4b4b4(Te6edf3rawTb4b4b4.Te6edf3expectedSha256HexTb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Te6edf3dbTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

Tff7b72export Tff7b72async Tff7b72function Te6edf3clearMicronWasmRuntimeOverrideTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3db Tff7b72= Tff7b72await Te6edf3openDbTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72const Te6edf3tx Tff7b72= Te6edf3dbTb4b4b4.Te6edf3transactionTb4b4b4(Te6edf3STORETb4b4b4, Ta5d6ff"readwrite"Tb4b4b4)Tb4b4b4;
Tff7b72const Te6edf3st Tff7b72= Te6edf3txTb4b4b4.Te6edf3objectStoreTb4b4b4(Te6edf3STORETb4b4b4)Tb4b4b4;
Te6edf3stTb4b4b4.Tff7b72deleteTb4b4b4(Te6edf3KEYTb4b4b4)Tb4b4b4;
Tff7b72await Tff7b72new Tffa657PromiseTb4b4b4(Tb4b4b4(Te6edf3resolveTb4b4b4, Te6edf3rejectTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3txTb4b4b4.Te6edf3oncomplete Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3resolveTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3txTb4b4b4.Te6edf3onerror Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3rejectTb4b4b4(Te6edf3txTb4b4b4.Te6edf3error Tff7b72|| Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"IndexedDB delete failed"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3txTb4b4b4.Te6edf3onabort Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3rejectTb4b4b4(Te6edf3txTb4b4b4.Te6edf3error Tff7b72|| Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"IndexedDB delete aborted"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Te6edf3dbTb4b4b4.Te6edf3closeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.2 - Generated in 0.02s